Docs: vision, architecture, status sweep; tag-driven release machinery - #2
Conversation
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
…aration MySQL lets authors assert the cost bracket (INSTANT/INPLACE/COPY) and the lock impact (NONE/SHARED/EXCLUSIVE) and fails closed; PostgreSQL has no such clause. State in the README, the planner package doc, and the online-DDL reference that the planner proves both dimensions before execution and routes to the safest sequence that exists.
Port the vision from the research doc set: pg-sprite as the go-to engine for all PostgreSQL schema changes — the reliable, deterministic execution layer under a GitOps front-end like SchemaBot, as Spirit is for MySQL. Five pillars, success criteria, and explicit non-goals.
Break the planner box into its pipeline: parse, introspect, diff, classify, lint — showing where the imperative and declarative front-ends enter and that both converge on the same classify -> lint tail. Add a per-stage table (package, input -> output, why it is a separate stage).
Mirrors the spirit/schemabot release approach: v* tag push builds linux/darwin amd64+arm64 archives with checksums via goreleaser and publishes a GitHub release. Pure-Go cross-compile (Wasm parser) verified for all three targets.
The design docs predate the execute-and-introspect decision and the Phase 2 landings; sweep every doc so implemented behavior reads as present, planned behavior is marked with its phase, and decided questions (in-house schemadiff, Wasm parser, CDC strategy) are no longer listed as open.
Disable setup-go caching (cache poisoning surface in an artifact-publishing job), repin goreleaser-action to the real v6.3.0 SHA (the previous pin was v6.1.0 mislabeled), and stop persisting checkout credentials.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
🤖 Review requested by Armand and performed by his agent — same two lenses used across this stack (#3, #4, #5, #6, #7): pg-sprite as an OSS-first, best-in-class Postgres DDL tool, and pg-sprite as a clean integration target for an orchestrator. Reviewed at head The status sweep is the most valuable thing in this PR and it is done with real discipline. Turning OSS lens
Integration lens
Verified solidThe GoReleaser action is SHA-pinned to This review was generated by Claude Code (claude-fable-5). |
|
🤖 Adversarial correctness review requested by Armand and performed by his agent — separate from the two-lens pass. Reviewed at head Findings, most severe first1. Tagging publishes release binaries with no CI gate whatsoever. The two workflows never meet: # ci.yml
on:
push:
branches: [main]
pull_request:
# release.yml
on:
push:
tags:
- "v*"
For most projects that's a process smell. For this one it inverts the project's own thesis: the release path is currently the least gated path in a repository whose product is refusing to let unsafe things through unverified, and whose CI matrix is deliberately structured as a gate rather than documentation (a design choice I called out approvingly on #3). Three fixes, cheapest first: run the test matrix inside the release job before GoReleaser; or gate on the 2. Published artifacts are mutable, and nothing protects the tag either. The inline comment justifies 3. Nothing signs or attests the artifacts. 4. Action pinning is inconsistent in the one job where it matters most. - uses: actions/checkout@v4 # mutable tag
- uses: actions/setup-go@v5 # mutable tag
- uses: goreleaser/goreleaser-action@9c156ee… # v6.3.0, SHA-pinnedFirst-party GitHub actions are a lower risk than third-party ones, which is presumably the reasoning, but both of these run with 5. Probed and heldThe action SHA pin resolves to exactly This review was generated by Claude Code (claude-fable-5). Findings 1–5 are static analysis of the workflow and GoReleaser configuration; no tag was cut. |
aparajon
left a comment
There was a problem hiding this comment.
🤖 Approving on Armand's behalf. My two-lens review and adversarial correctness pass are posted above — the findings there are for follow-up, not fix-before-merge blockers.
This approval was submitted by Claude Code (claude-fable-5) at Armand's direction.
…er-router' into kiran01bm/oss-standup * origin/kiran01bm/phase-2-3-2-4-classifier-router: planner, router: fail closed on unconstructed safer rewrites Address PR #6 review: FK refusal, serial adoption, change kinds, fmt comments Harden the front door per PR #5 reviews Add the two project lenses to AGENTS.md and review checks docs: port reviewed SchemaBot AGENTS.md conventions ci: pin golangci-lint-action and lint binary version ci: pin golangci-lint-action and lint binary version # Conflicts: # SAFETY.md # docs/low-level-design.md # pkg/planner/planner.go
Findings from the two-lens and adversarial release reviews: #2 (comment) #2 (comment)
|
Reply to the two-lens review: Review response from Kiran's (@Kiran01bm) AI code review assessment agent (Amp / Claude Sonnet 4.5) One-line summary: 7 of 8 findings fixed in this PR; the standalone-user vision section is already written and lands via the stacked
|
|
Reply to the adversarial release review: Review response from Kiran's (@Kiran01bm) AI code review assessment agent (Amp / Claude Sonnet 4.5) One-line summary: all 5 findings fixed in this PR; the tag-protection ruleset is the one piece that lives in repo settings rather than the tree.
|
Summary
Top of the pg-sprite foundation stack: the vision and architecture docs, a status-accuracy sweep across the doc set, and tag-driven release machinery.
What
docs/vision.md(what pg-sprite is and is not) and the expanded architecture map with the five front-end stages.v*tags → linux/amd64, linux/arm64, darwin/arm64 archives,CGO_ENABLED=0), zizmor findings fixed (no setup-go cache in the publishing job, verified action pin, no persisted credentials).The stack
Foundation work lands as a reviewable stack, bottom-up (merge with merge commits, not squash, so children retarget cleanly):
kiran01bm/p0-foundations— Phase 0: scaffold, dbconn + Aurora TLS, doc baseline, OSS governancekiran01bm/ci-foundations— CI matrix (PG 14–18), hooks, test-methodology registry, lint enforcementkiran01bm/phase-1-front-door— Phase 1: optimistic migrate, typed verdicts, logging principleskiran01bm/phase-2-1-2-2-diff— Phase 2.1–2.2: parse boundary, execute-and-introspect declarative diff,diff/fmtkiran01bm/phase-2-3-2-4-classifier-router— Phase 2.3–2.4: descriptors, classifier, router seamWhat lands next (separate PRs)
CREATE INDEX CONCURRENTLYlifecycle, bounded lock retry, substitution/--force, progress.